package br.com.news.ws;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import org.apache.log4j.Logger;

import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.service.exception.ServiceException;

@Path("/Usuario")
public class UsuarioWs extends GenericWs<UsuarioBean> {

	Logger logger = Logger.getLogger(getClass());
	
	@GET
	@Path("/findAll")
	@Produces("application/json")
	public String findAll() {
		try {
			return listToJson(RmiFactory.getUsuarioService().findAll());
		} catch(ServiceException e) {
			e.printStackTrace();
		}
		return null;
	}

	@POST
	@Path("/insert")
	@Consumes("application/json")
	@Produces("application/json")
	public void save(String json) {
		try {
			UsuarioBean usuario = (UsuarioBean) convertFromJson(json, new UsuarioBean());
			RmiFactory.getUsuarioService().save(usuario);
		} catch(ServiceException e) {
			e.printStackTrace();
		}
	}
	
	@POST
	@Path("/findByExample")
	@Produces("application/json")
	@Consumes("application/json")
	public String findByExample(String usuario) {
		UsuarioBean usuarioBean = (UsuarioBean) convertFromJson(usuario, new UsuarioBean());
		return  listToJson(RmiFactory.getUsuarioService().findByExample(usuarioBean));
	}
	
	@GET
	@Produces("application/json")
	public String buscaTodosOsUsuariosAtivos() {
		return listToJson(RmiFactory.getUsuarioService().buscaTodosOsUsuariosAtivos());
	}
	
	@GET
	@Path("/autenticar/{login}/{senha}")
	@Produces("application/json")
	public String autenticar(@PathParam(value="login")String login,@PathParam(value="senha") String senha) {
		UsuarioBean usuarioBean = new UsuarioBean();
		usuarioBean.setLogin(login);
		usuarioBean.setSenha(senha);
		return  toJson(RmiFactory.getUsuarioService().autenticar(usuarioBean));
	}
	
	@PUT
	@Path("/update")
	@Consumes("application/json")
	public void update(String json) {
		UsuarioBean usuario = (UsuarioBean) convertFromJson(json, new UsuarioBean());
		try {
			RmiFactory.getUsuarioService().update(usuario);
		} catch (ServiceException e) {
			e.printStackTrace();
		}
	}
	
}
